home *** CD-ROM | disk | FTP | other *** search
- CODE SEGMENT
- ASSUME CS:CODE,DS:CODE
- ORG 100H
- START: MOV SI,81H
- LOOP1: SUB BX,BX
- SUB DX,DX
- LOOP2: LODSB
- CMP AL,' '
- JZ LOOPR
- CMP AL,13
- JZ LOOPX
- CMP AL,'0'
- JC LOOPE
- CMP AL,'9'+1
- JC LOOPO
- AND AL,5FH
- CMP AL,'A'
- JC LOOPE
- CMP AL,'G'
- JNC LOOPE
- SUB AL,7
- LOOPO: AND AL,15
- INC BX
- MOV CL,4
- ROL DX,CL
- OR DL,AL
- JMP LOOP2
- LOOPR: OR BX,BX
- JZ LOOP2
- CALL DSPINT
- JMP LOOP1
- LOOPX: OR BX,BX
- JZ EXIT
- CALL DSPINT
- EXIT:
- LOOPE: RET
- DSPINT: MOV AL,DL
- MOV DI,OFFSET INTNO
- CALL HEXB
- MOV BX,DX
- ADD BX,BX
- ADD BX,BX
- SUB AX,AX
- PUSH ES
- MOV ES,AX
- MOV DX,ES:[BX]
- MOV AX,ES:[BX+2]
- POP ES
- MOV DI,OFFSET SEGADR
- CALL HEXW
- INC DI
- MOV AX,DX
- CALL HEXW
- MOV DX,OFFSET MSG1
- MOV AH,9
- INT 21H
- RET
- HEXW: PUSH AX
- MOV AL,AH
- CALL HEXB
- POP AX
- HEXB: PUSH AX
- MOV CL,4
- SHR AL,CL
- CALL HEXN
- POP AX
- HEXN: PUSH AX
- AND AL,15
- ADD AL,90H
- DAA
- ADC AL,40H
- DAA
- STOSB
- POP AX
- RET
- MSG1 DB 'INT '
- INTNO DB 'xxH '
- SEGADR DB 'xxxx:xxxx',13,10,'$'
- CODE ENDS
- END START
- AL,40H
- DAA
- STOSB
- POP AX
- RET
- MSG1 DB 'INT '
- INTNO DB 'xxH '
- SEGADR DB 'xxxx:xxxx',13,10,'$'
- CODE ENDS